package com.qf.blog.listener;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

/**
 * @author zyt
 * @version 1.0
 */
// 在项目启动时，把上下文的域对象放在模板引擎对象中
//ServletContextListener监听器可以监听ServletContext对象的创建和销毁(web工程启动时创建，停止时销毁)，
// 监听到创建和销毁之后都会调用ServletContextListener监听器的方法进行反馈：
    @WebListener
public class SpringInitListener implements ServletContextListener {

    @Override
    // 在ServletContext创建时调用
    public void contextInitialized(ServletContextEvent sce) {
        // 1. 初始化spring工厂
        ApplicationContext applicationContext= new ClassPathXmlApplicationContext("beans.xml");
        // 2. 把spring工厂放在上下文中
        //getServletContext获取上下文
        //setAttribute将数据以key-value的方式存在请求对象中
        sce.getServletContext().setAttribute("spring",applicationContext);
    }
}
